import Vue from 'vue'
import router from '@/router'
import CORE from '@/CORE'
import App from '@/App'

// 越后优先级越高
import '@/CORE_WEB'
import '@/components'
import '@/assets/scss/index.scss'

// 生产环境关闭提示
Vue.config.productionTip = false

// 所有组件添加 this.CORE
Vue.prototype.CORE = CORE

// 可在控制台上测试 CORE
if (!CORE.isProd() || localStorage.debug) window.CORE = CORE

/**
 * 根组件配置 (Root 不等于 App)
 */
const root = {
  render: (h) => h(App),
  router,
  data: {
    TIME: CORE.TIME, // 内核时间
    CACHE: CORE.CACHE, // 内核缓存
    SOCKET: CORE.SOCKET, // 内核推送
  },
  mixins: [CORE.mixLoop()],
  methods: {
    toLoop() {
      CORE.initCORE() // 循环刷新
    },
  },
}

/**
 * 初始化并挂载
 */
CORE.initCORE()
  .then(() => new Vue(root).$mount('#app'))
  .catch((e) => CORE.initCORECatch(e))
